﻿namespace wToggle.Platform.Interfaces
{
    using System;
    using System.Collections.Generic;
    using System.Threading.Tasks;

    using wToggle.Platform.Data;

    public interface ITimeEntryProvider : IBasicDataProvider<TimeEntry>
    {
        Task<ICollection<TimeEntry>> GetEntries(DateTime startUtc, DateTime endUtc, bool expandProject = false);

        Task<TimeEntry> GetEntry(ulong navigationParameter);

        Task<ICollection<ReportTimeEntry>> FilterEntries(
            ulong workspaceId,
            DateTime from,
            DateTime to,
            ICollection<ulong> clientIds = null,
            ICollection<ulong> projectIds = null,
            ICollection<ulong> tagIds = null);

        Task<byte[]> PdfReport(
           ulong workspaceId,
           DateTime from,
           DateTime to,
           ICollection<ulong> clientIds = null,
           ICollection<ulong> projectIds = null,
           ICollection<ulong> tagIds = null);
    }
}
